"""
1. 使用步骤：
# 1. 导包 from parameterized import parameterized
#   安装parameterized： pip install parameterized
# 2. 在测试方法上方添加装饰器并都调用方法
@parameterized.expand([(数据1， 数据2, ……), (数据a， 数据b, ……), ……])
def 测试方法(self, 形参1， 形参2, ……)
    pass

2. 注意: 参数化完成后, 需要在测试类后侧执行测试, 测试方法后侧运行报错
3. 参数化形式二: 先定义变量接收数据, 再传入变量
"""

import unittest
# 1. 导包 from parameterized import parameterized
#   安装parameterized： pip install parameterized
from parameterized import parameterized


def add(a, b):
    return a + b


# 类的外面定义变量
data = [(1, 1, 3), (2, 2, 4), (2, 3, 8), (3, 3, 6)]


class TestAdd(unittest.TestCase):
    @parameterized.expand(data)
    def test_add(self, x, y, expect):
        print(f'x = {x}, y = {y}, expect = {expect}')
        # x, y 传入函数的参数，expect预期结果
        result = add(x, y)
        print('result = ', result)
        # 断言
        self.assertEqual(expect, result)
